package a27_GenericityUse.GenericityClass;

/**
 * @Author quan
 * @Description 泛型类的定义和使用
 * @Date 2023/3/15 16:54

 */

import java.util.Arrays;

/**定义了一个泛型类：后面<>内写E，表目前不知道该类的数据类型是什么
 */
public class MyArrayList<E> {
    //因为ArrayList底层就是一个Object类型的数组，这里我们定义一个Object类型的数组,长度为10
    Object[] obj = new Object[10];
    int index;//定义数组的索引值为index

    /**
     * 定义一个方法：对数组的元素进行添加，有返回值表示是否添加成功
     * E:表示添加的元素的数据类型
     * e:形参，就是变量名
     */
    public boolean add(E e){
        obj[index] = e;
        index++;
        return true;
    }
    /**
     * 方法：获取数组中索引位置的元素，有返回值，表示获取到的元素值
     * 因此返回值类型为E，表示不确定
     */
    public E get(int index){
        return (E)(obj[index]);//将返回值类型转为E
    }

    /**
     * 重写toString方法，返回集合中的元素值
     */
    @Override
    public String toString() {
        return Arrays.toString(obj);
    }
}
